﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FlashPay.Entity.Request.Bank
{
    /// <summary>
    /// 银行卡修改、添加参数
    /// </summary>
    public class BankEditOrAddRequest
    {
        /// <summary>
        /// 银行卡类型
        /// </summary>
        public int BcId { get; set; }

        /// <summary>
        /// 银行卡类型
        /// </summary>
        public sbyte CardType { get; set; }

        /// <summary>
        /// 公司编号
        /// </summary>
        public int CompanyId { get; set; }

        /// <summary>
        /// 银行副卡号
        /// </summary>
        public string SecCardNumber { get; set; }

        /// <summary>
        /// 银行卡使用状态
        /// </summary>
        public sbyte? UsingStatus { get; set; }

        /// <summary>
        /// 银行卡启用状态
        /// </summary>
        public sbyte? EnableStatus { get; set; }

        /// <summary>
        /// 查询密码
        /// </summary>
        public string PasswordQuery { get; set; }

        /// <summary>
        /// 原始密码
        /// </summary>
        public string OriginalPassword { get; set; }

        /// <summary>
        /// 网盾类型
        /// </summary>
        public sbyte? UsbType { get; set; }

        /// <summary>
        /// 付款区间起
        /// </summary>
        public string PaymentStart { get; set; }

        /// <summary>
        /// 付款区间迄
        /// </summary>
        public string PaymentEnd { get; set; }

        /// <summary>
        /// 付款费率
        /// </summary>
        public string PayFeeRatio { get; set; }

        /// <summary>
        /// 跨行转账
        /// </summary>
        public sbyte? CrossBankPay { get; set; }

        /// <summary>
        /// 证件号码
        /// </summary>
        public string DocumentNumber { get; set; }

        /// <summary>
        /// 收款费率
        /// </summary>
        public string DepositFeeRatio { get; set; }

        /// <summary>
        /// 存款等级
        /// </summary>
        public string DepositType { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 用户编号
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 用户编号
        /// </summary>
        public int CurrentCompanyId { get; set; }
        

        /// <summary>
        /// 付款类型
        /// </summary>
        public sbyte? PaymentType { get; set; }

        #region 额外限制
        /// <summary>
        /// 关闭时间
        /// </summary>
        public DateTime? LimitCloseDate { get; set; }

        /// <summary>
        /// 开启时间
        /// </summary>
        public DateTime? LimitOpenDate { get; set; }

        /// <summary>
        /// 每天执行
        /// </summary>
        public sbyte? LimitRepeat { get; set; }

        /// <summary>
        /// 限制收款金额
        /// </summary>
        public string LimitDepositAmount { get; set; }

        /// <summary>
        /// 限制收款笔数
        /// </summary>
        public string LimitDepositCount { get; set; }

        /// <summary>
        /// 转付款
        /// </summary>
        public sbyte? LimitChangetoPay { get; set; }

        /// <summary>
        /// 限制付款金额
        /// </summary>
        public string LimitPayAmount { get; set; }

        /// <summary>
        /// 限制付款笔数
        /// </summary>
        public string LimitPayCount { get; set; }

        /// <summary>
        /// 转收款
        /// </summary>
        public sbyte? LimitChangetoDeposit { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public sbyte? LimitStatus { get; set; }
        #endregion

        #region 中转卡
        /// <summary>
        /// 中转费率
        /// </summary>
        public string TransportRate { get; set; }
        /// <summary>
        /// 是否于存款卡中呈现
        /// </summary>
        public sbyte ShowedOnDepositCard { get; set; }
        /// <summary>
        /// 触发中转金额
        /// </summary>
        public string TriggeredAmount { get; set; }
        /// <summary>
        /// 每次中转金额
        /// </summary>
        public string TransferredAmount { get; set; }
        /// <summary>
        /// 预留账户金额
        /// </summary>
        public string PreservedBalance { get; set; }
        /// <summary>
        /// 中转方式
        /// </summary>
        public int TransportMethod { get; set; }

        /// <summary>
        /// 转入卡类型
        /// </summary>
        public List<int> DestinationCardType { get; set; }
        /// <summary>
        /// 预留账户金额
        /// </summary>
        public string DestinationOrderSideBalance { get; set; }
        /// <summary>
        /// 转账最大额度
        /// </summary>
        public string DestinationBankCode { get; set; }
        /// <summary>
        /// 转账最大额度
        /// </summary>
        public List<string> DestinationBankCodes { get; set; }
        /// <summary>
        /// 转入卡余额
        /// </summary>
        public List<int> DestinationBCID { get; set; }
        #endregion

        #region 中转卡转帐规则
        /// <summary>
        /// 中转卡转帐规则
        /// </summary>
        public List<TransportCardRuleRequest> TransportCardRules { get; set; }
        #endregion

        /// <summary>
        /// 支付宝卡编号
        /// </summary>
        public string AliPayCardIndex { get; set; }
        /// <summary>
        /// 支付宝银行编码
        /// </summary>
        public string AliPayBankMark { get; set; }
        /// <summary>
        /// 支付宝姓名
        /// </summary>
        public string AliPayCardName { get; set; }
    }
}
